zz_

test/median.test.js

zzmq.dev@gmail.com[dev3]/mathkit[add-median-numbers-function-returns] / test / median.test.js @ e84ab4c7 Download
Ladder Summary
  • file Add median function to compute the median of an array of numbers with comprehensive tests
import { test } from "node:test";
import assert from "node:assert/strict";
import { median } from "../src/median.js";

test("median with odd number of elements", () => {
  assert.strictEqual(median([3, 1, 2]), 2);
  assert.strictEqual(median([10, -5, 7, 3, 2]), 3);
});

test("median with even number of elements", () => {
  assert.strictEqual(median([1, 2, 3, 4]), 2.5);
  assert.strictEqual(median([7, 3, 5, 1]), 4);
});

test("median works on unsorted arrays", () => {
  assert.strictEqual(median([9, 2, 7, 4, 5]), 5);
  assert.strictEqual(median([8, 1, 6, 3]), 4.5);
});

test("median returns undefined for empty array or invalid inputs", () => {
  assert.strictEqual(median([]), undefined);
  assert.strictEqual(median(null), undefined);
  assert.strictEqual(median("not an array"), undefined);
  assert.strictEqual(median([1, 2, "three"]), undefined);
  assert.strictEqual(median([1, NaN, 3]), undefined);
  assert.strictEqual(median([Infinity, 1, 2]), undefined);
});